home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PWAULTP3.ZIP
/
PWAPRGMS.A02
/
PWA95
/
PWAPCP01.ZIP
/
CHAT100
/
CHAT.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-09-03
|
5KB
|
396 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
DWord DWORD001
String STRING001
String STRING002
String TSTRING003(2)
String TSTRING004(11)
String TSTRING005(2)
String TSTRING006(4)
String STRING007
String STRING008
String STRING009
Int INT001
Int INT002
Int INT003
Int INT004
Int INT005
Int INT006
Int INT007
Int INT008
Int INT009
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004()
;------------------------------------------------------------------------------
INT001 = 1
INT003 = 1
INT002 = 1
INT004 = 13
INT006 = 1
INT007 = 1
INT008 = 1
INT009 = 13
STRING008 = ReadLine(PCBDat(), 2)
STRING009 = ReadLine(PCBDat(), 94)
TSTRING006(1) = ReadLine(PPEPath() + "CHAT.CFG", 1)
TSTRING006(2) = ReadLine(PPEPath() + "CHAT.CFG", 2)
TSTRING006(3) = ReadLine(PPEPath() + "CHAT.CFG", 3)
TSTRING006(4) = ReadLine(PPEPath() + "CHAT.CFG", 4)
DWORD001 = ReadLine(PPEPath() + "CHAT.CFG", 5)
TSTRING006(3) = ReplaceStr(TSTRING006(3), "%SYSOP%", TSTRING006(2))
TSTRING006(3) = ReplaceStr(TSTRING006(3), "%BBS%", TSTRING006(1))
TSTRING006(3) = ReplaceStr(TSTRING006(3), "~", " ")
STRING007 = "1.00"
If (Crc32(0, TSTRING006(1)) / 5 + 33 == DWORD001) Then
BOOLEAN001 = 1
Else
BOOLEAN001 = 0
Endif
If (AnsiOn()) Goto LABEL001
Print TSTRING006(3)
End
:LABEL001
SaveScrn
StartDisp 1
Cls
PROC002()
AnsiPos 1, 1
Print "@X0A" + TSTRING006(3)
INT001 = GetX()
INT003 = GetY()
While (STRING002 <> Chr(27)) Do
PROC001()
PROC003()
EndWhile
Cls
PrintLn "@X0FCHAT.PPE Version ", STRING007, " Copyright (C) 1995 by Mukunda Modell"
If (BOOLEAN001) Then
PrintLn "@X0CREGISTERED to:@X0F ", TSTRING006(1), " of ", TSTRING006(2)
Else
Print ""
INT005 = 1
PrintLn "@X0CREGISTERED to:@X0F ", STRING008, " of ", STRING009
Print "@X0F"
Endif
Wait
RestScrn
KbdStuff Chr(27)
End
;------------------------------------------------------------------------------
Procedure PROC001()
STRING002 = ""
STRING001 = ""
While ((STRING002 == "") && (STRING001 == "")) Do
STRING002 = KInkey()
STRING001 = MInkey()
EndWhile
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
AnsiPos 1, 12
If (BOOLEAN001) Then
PrintLn TSTRING006(4)
Else
PrintLn TSTRING006(4)
Endif
AnsiPos 1, 1
EndProc
;------------------------------------------------------------------------------
Procedure PROC003()
If (STRING002 == "") Then
Cls
Print "@X0A" + TSTRING006(3)
End
Endif
PROC004()
If ((TSTRING005(1) <> "") || (TSTRING005(2) <> "")) Then
AnsiPos INT001, INT003
Print "@X0A" + TSTRING005(1)
INT001 = GetX()
INT003 = GetY()
TSTRING005(1) = ""
AnsiPos INT002, INT004
Print "@X0F" + TSTRING005(2)
INT002 = GetX()
INT004 = GetY()
TSTRING005(2) = ""
Endif
If (STRING002 <> "") Then
AnsiPos INT001, INT003
If (CurColor() <> "@X0A") Print "@X0A"
If ((STRING002 == " ") && (GetX() == 1)) Then
TSTRING003(1) = ""
Goto LABEL002
Endif
If (STRING002 == " ") Then
TSTRING003(1) = ""
Goto LABEL002
Endif
If (STRING002 == Chr(13)) Then
TSTRING003(1) = ""
INT006 = GetX()
INT007 = GetY()
If (GetY() == 11) INT007 = 10
Newline
STRING002 = ""
INT001 = GetX()
INT003 = GetY()
PROC004()
Goto LABEL002
Endif
If ((INT001 == 1) && (STRING002 == Chr(8))) Then
AnsiPos INT006, INT007
INT001 = INT006
INT003 = INT007
STRING002 = ""
Goto LABEL002
Endif
If (STRING002 == Chr(8)) Then
Backup 1
Print " "
Goto LABEL002
Endif
TSTRING003(1) = TSTRING003(1) + STRING002
:LABEL002
If (INT001 == 79) Then
INT001 = 1
Inc INT003
Backup Len(TSTRING003(1))
INT006 = GetX()
INT007 = GetY()
PrintLn Space(Len(TSTRING003(1)))
STRING002 = ""
TSTRING005(1) = TSTRING003(1)
INT001 = GetX()
INT003 = GetY()
Endif
AnsiPos INT001, INT003
Print STRING002
INT001 = GetX()
INT003 = GetY()
Endif
If (STRING001 <> "") Then
AnsiPos INT002, INT004
If (CurColor() <> "@X0F") Print "@X0F"
If ((STRING001 == " ") && (INT002 == 1)) Then
TSTRING003(2) = ""
Goto LABEL003
Endif
If (STRING001 == " ") Then
TSTRING003(2) = ""
Goto LABEL003
Endif
If (STRING001 == Chr(13)) Then
TSTRING003(2) = ""
INT008 = GetX()
INT009 = GetY()
If (GetY() == 22) INT009 = 21
Newline
STRING001 = ""
INT002 = GetX()
INT004 = GetY()
PROC004()
Goto LABEL003
Endif
If ((INT002 == 1) && (STRING001 == Chr(8))) Then
AnsiPos INT008, INT009
INT002 = INT008
INT004 = INT009
STRING001 = ""
Goto LABEL003
Endif
If (STRING001 == Chr(8)) Then
Backup 1
Print " "
Goto LABEL003
Endif
TSTRING003(2) = TSTRING003(2) + STRING001
:LABEL003
If (INT002 == 79) Then
INT002 = 1
Inc INT004
Backup Len(TSTRING003(2))
INT008 = GetX()
INT009 = GetY()
PrintLn Space(Len(TSTRING003(2)))
STRING001 = ""
TSTRING005(2) = TSTRING003(2)
INT002 = GetX()
INT004 = GetY()
Endif
AnsiPos INT002, INT004
Print STRING001
INT002 = GetX()
INT004 = GetY()
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
If (INT003 == 12) Then
AnsiPos 1, 1
If (CurColor() <> "@X0A") Print "@X0A"
TSTRING004(1) = ScrText(1, 1, 79, 0)
TSTRING004(2) = ScrText(1, 2, 79, 0)
TSTRING004(3) = ScrText(1, 3, 79, 0)
TSTRING004(4) = ScrText(1, 4, 79, 0)
TSTRING004(5) = ScrText(1, 5, 79, 0)
TSTRING004(6) = ScrText(1, 6, 79, 0)
TSTRING004(7) = ScrText(1, 7, 79, 0)
TSTRING004(8) = ScrText(1, 8, 79, 0)
TSTRING004(9) = ScrText(1, 9, 79, 0)
TSTRING004(10) = ScrText(1, 10, 79, 0)
TSTRING004(11) = ScrText(1, 11, 79, 0)
For INT005 = 1 To 11
Print TSTRING004(INT005 + 1)
ClrEol
Newline
Next
INT001 = 1
INT003 = 11
AnsiPos INT001, INT003
Endif
If (INT004 == 23) Then
AnsiPos 1, 13
If (CurColor() <> "@X0F") Print "@X0F"
TSTRING004(1) = ScrText(1, 13, 79, 0)
TSTRING004(2) = ScrText(1, 14, 79, 0)
TSTRING004(3) = ScrText(1, 15, 79, 0)
TSTRING004(4) = ScrText(1, 16, 79, 0)
TSTRING004(5) = ScrText(1, 17, 79, 0)
TSTRING004(6) = ScrText(1, 18, 79, 0)
TSTRING004(7) = ScrText(1, 19, 79, 0)
TSTRING004(8) = ScrText(1, 20, 79, 0)
TSTRING004(9) = ScrText(1, 21, 79, 0)
TSTRING004(10) = ScrText(1, 22, 79, 0)
TSTRING004(11) = ScrText(1, 23, 79, 0)
For INT005 = 1 To 10
Print TSTRING004(INT005 + 1)
ClrEol
Newline
Next
INT002 = 1
INT004 = 22
AnsiPos INT002, INT004
INT009 = 21
Endif
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 3 Cls
; 2 ClrEol
; 1 Wait
; 44 Goto
; 109 Let
; 17 Print
; 7 PrintLn
; 32 If
; 1 StartDisp
; 2 Inc
; 4 Newline
; 1 KbdStuff
; 15 AnsiPos
; 4 Backup
; 1 SaveScrn
; 1 RestScrn
; 4 EndProc
;
;
; ■ Functions used :
;
; 1 /
; 16 +
; 24 ==
; 9 <>
; 2 <
; 2 <=
; 4 >=
; 25 !
; 9 &&
; 3 ||
; 4 Len(
; 2 Space()
; 8 Chr()
; 2 PCBDat()
; 5 PPEPath()
; 7 ReadLine()
; 1 AnsiOn()
; 14 GetX()
; 15 GetY()
; 4 CurColor()
; 1 KInkey()
; 1 MInkey()
; 22 ScrText()
; 3 ReplaceStr()
; 1 Crc32()
;
;------------------------------------------------------------------------------
;
; Analysis flags : d
;
; d - Access PCBOARD.DAT ■ 2
; Program gets the full pathname to PCBOARD.DAT, this may be usefull
; for many PPE so they can find various informations on the system
; (system paths, max number of lines in messages, ...) but it may also
; be a way to gather vital informations.
; ■ Search for : PCBDAT()
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 2 For/Next
; 2 While/EndWhile
; 21 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------